home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / swtools / generic / showcaseui.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  18.9 KB  |  600 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17.  
  18. #ifndef __SHOWCASEUI_H__
  19. #define __SHOWCASEUI_H__
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. /**************************************************************************
  26.  *                                                                        *
  27.  *       Copyright (C) 1990, Silicon Graphics, Inc.                       *
  28.  *                                                                        *
  29.  *  These coded instructions, statements, and computer programs  contain  *
  30.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  31.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  32.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  33.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  34.  *                                                                        *
  35.  **************************************************************************/
  36.  
  37. #define UILEFT          100
  38. #define UIRIGHT         101
  39. #define UILRCENTER      102
  40. #define UITBCENTER      103
  41. #define UITOP           104
  42. #define UIBOTTOM        105
  43.  
  44. #define UIBUTTONUP    0
  45. #define UIBUTTONDOWN    1
  46. #define UIBUTTONCLICK    2
  47. #define UIBUTTONDOUBLE    3
  48.  
  49. #define P_UISHADOW      343
  50. #define P_UILINESHADOW     344
  51.  
  52. #define MENUBARHEIGHT   26
  53. #define SHADOWOFFSET    6
  54. #define MENUXGAP        9
  55.  
  56. #define TEXTHEIGHT      20
  57. #define DEFAULTFONT    0
  58.  
  59. #define CHECKBUTTON     1
  60. #define PALETTEBUTTON   2
  61. #define PUSHBUTTON      3
  62. #define RADIOBUTTON     4
  63. #define TOGGLEBUTTON    5
  64. #define TINYTOGGLE      6
  65. #define ICONBUTTON      7
  66. #define ICON            8
  67. #define INDICATOR       9
  68. #define BED             10
  69. #define GENERICBUTTON   11
  70. #define PTRBUTTON       12
  71. #define CUSTOMBUTTON    13
  72. #define TINYRADIO       14
  73. #define VSLIDER         15
  74. #define HSLIDER         16
  75. #define VALUATOR    17
  76. #define TEXTBOX        18
  77. #define TEXTLIST    19
  78. #define MENUBAR        20
  79. #define PULLDOWNMENU    21
  80. #define POPUPMENU    22
  81. #define TEXTLABEL    23
  82. #define BOLDTEXTLABEL    24
  83.  
  84. #define TROUGH          3
  85. #define THUMB           2
  86. #define SCROLLDOWN      -1
  87. #define SCROLLUP        1
  88. #define SLIDERWIDTH     20
  89. #define ARROWHEIGHT     20
  90. #define MINSHALF        13
  91.  
  92. /* Buttons */
  93.  
  94. #define BUTSTRLEN       200
  95. #define BUTHEIGHT       28
  96. #define BUTWIDTH        75
  97. #define TINYTOGGLEHEIGHT 16
  98. #define TINYTOGGLEWIDTH 16
  99. #define TINYRADIOHEIGHT 16
  100. #define TINYRADIOWIDTH  16
  101. #define PALETTEHEIGHT   35
  102. #define PALETTEWIDTH    40
  103. #define ICONHEIGHT      32
  104. #define ICONWIDTH       32
  105. #define CHECKHEIGHT     20
  106. #define CHECKWIDTH      20
  107. #define RADIOHEIGHT     24
  108. #define RADIOWIDTH      24
  109. #define INDICATORHEIGHT 28
  110. #define INDICATORWIDTH  10
  111. #define LABELFONTHEIGHT 11
  112.  
  113. #define BUTTONICONFONT  5600
  114. #define BUTTONFONT1     5601
  115. #define BUTTONFONT2     5602
  116. #define BUTTONFONT3     5603
  117.  
  118. typedef struct AButton {
  119.     long xmin,xmax,ymin,ymax;
  120.     long number;        /* the button number--used internally */
  121.     char str[BUTSTRLEN+1];      /* the label on or next to the button */
  122.     short active;               /* the button is on (menu option label #) */
  123.     short enable;               /* the button is able to be pressed */
  124.     short locate;               /* the button is locate highlighted */
  125.     short select;               /* the button is pressed */
  126.     short invisible;        /* the button is not visible */
  127.     short type;                 /* checkbutton, indicator, etc. */
  128.     short thedefault;           /* the button is the default button */
  129.     short sticky;               /* stays pressed until an unpress is called */
  130.     void  (*butcolor)();        /* color of the text or icon on the button */
  131.     void  (*drawbutton)();      /* color of the text or icon on the button */
  132.     struct AButton **links;    /* used mainly for radio buttons to connect */
  133.     long numlinks;        /* the number of button links */
  134. } Button;
  135.  
  136. Button *newbut(long, long, long, long);
  137. Button *newcheckbut(long, long);
  138. Button *newpushbut(long, long);
  139. Button *newtogglebut(long, long, long);
  140. Button *newradiobut(long, long);
  141. Button *newindicator(long, long);
  142. Button *newtinyradio(long, long);
  143. Button *newtinytoggle(long, long);
  144. Button *newpalettebut(long, long);
  145. Button *newiconbut(long, long);
  146. Button *newptrbut(long, long);
  147. Button *newicon(long, long);
  148. Button *newcustombut(long, long, long, long, void (*drawbutton)());
  149. Button *newbed(long, long, long, long);
  150. Button *handlebutchar(long);
  151.  
  152. void    drawcheckbut(Button *b);
  153. void    drawindicatorbut(Button *b);
  154. void    drawpushbut(Button *b);
  155. void    drawbed(Button *b);
  156. void    drawtogglebut(Button *b);
  157. void    drawradiobut(Button *b);
  158. void    drawindicator(Button *b);
  159. void    drawtinyradio(Button *b);
  160. void    drawtinytoggle(Button *b);
  161. void    drawpalettebut(Button *b);
  162. void    drawiconbut(Button *b);
  163. void    drawicon(Button *b);
  164. void    drawptrbut(Button *b);
  165.  
  166. void    freebut(Button *);
  167. void    activatebut(Button *);
  168. void    deactivatebut(Button *);
  169. void    lockbut(Button *);
  170. void    flipactive(Button *);
  171. void    highlightbut(Button *);
  172. void    unhighlightbut(Button *);
  173. void    defaultbut(Button *);
  174. void    undefaultbut(Button *);
  175. void    setcolorbut(Button *, void (*butcolor)());
  176. void    linkbuttons(Button *, Button *);
  177. void    unlinkbutton(Button *);
  178. void    disablebut(Button *);
  179. void    enablebut(Button *);
  180. void    selectbut(Button *);
  181. void    unselectbut(Button *);
  182. void    makevisiblebut(Button *);
  183. void    makeinvisiblebut(Button *);
  184. void    stickbut(Button *);
  185. void    unstickbut(Button *);
  186. void    loadbut(Button *, char *);
  187. void    unpressbut(Button *);
  188. void    initbut();
  189. void    initiconbut();
  190. void    drawbut(Button *);
  191. void    drawbutnow(Button *);
  192. void    drawborder(Button *);
  193. void    drawaborder(long, long, long, long);
  194. void    positionbut(Button *, short, long);
  195. void    drawlabel(char *, long, long);
  196. void    drawboldlabel(char *, long, long);
  197. void    clearlabel(char *, long, long);
  198. void    drawiconlabel(Button *);
  199. void    unpresslinkbuts(Button *);
  200. void    UIdrawbuttons();
  201. void    UIlocatebuttons();
  202.  
  203. short    gethighlightbut(Button *);
  204. short    getdefaultbut(Button *);
  205. short    locatebut(Button *, long, long);
  206. short    valuebut(Button *);
  207. short    getenablebut(Button *);
  208. short    getselectbut(Button *);
  209. short    getvisiblebut(Button *);
  210. short    getstickbut(Button *);
  211. short    inbut(Button *, long, long);
  212. short    pressbut(Button *, long, long);
  213. short    selectedpressbut(Button *, long, long, long);
  214.  
  215. /* Horizontal Sliders */
  216.  
  217. typedef struct {
  218.     long        xmin, ymin, xmax, ymax;
  219.     long        scenter;        /* the center of the thumb */
  220.     long    shalf;            /* half of the thumb length */
  221.     long    oldpos;            /* old scenter    */
  222.     long    arrowdelta;        /* arrow delta    */
  223.     short       locate;         /* locate highlight */
  224.     short    select;            /* selected or not */
  225.     short     invisible;        /* the slider is not visible */
  226.     short       enable;            /* the slider is enabled */
  227.     short    thumb;            /* whether the thumb should show */
  228. } Slider;
  229.  
  230. typedef    Slider HSlider;
  231.  
  232. HSlider    *newhs(long, long, long, long, long);
  233.  
  234. void     movehs(HSlider *, long, long, long);
  235. void    setarrowdeltahs(HSlider *, long);
  236. void    freehs(HSlider *);
  237. void    disablehs(HSlider *);
  238. void    enablehs(HSlider *);
  239. void    highlighths(HSlider *, short);
  240. void    unhighlighths(HSlider *);
  241. void    selecths(HSlider *, short);
  242. void    unselecths(HSlider *);
  243. void    makevisiblehs(HSlider *);
  244. void    makeinvisiblehs(HSlider *);
  245. void    presshsarrow(HSlider *, short);
  246. void    sethshalf(HSlider *, long);
  247. void    sethscenter(HSlider *, long);
  248. void    sethsval(HSlider *, float);
  249. void    movehsval(HSlider *, float);
  250. void    reseths(HSlider *);
  251. void    drawhs(HSlider *);
  252. void    drawhsnow(HSlider *);
  253. void    drawhsarrows(HSlider *);
  254.  
  255. short     locatehs(HSlider *, long, long);
  256. short     getenablehs(HSlider *);
  257. short     gethighlighths(HSlider *);
  258. short     getselecths(HSlider *);
  259. short     getenablehs(HSlider *);
  260. short    getvisiblehs(HSlider *);
  261. short     inhs(HSlider *, long, long);
  262. short     handlehs(HSlider *, long, long);
  263.  
  264. short     selectedhs(HSlider *, long, long, long, long *, void (*adjust)());
  265.  
  266. long     gethstrough(HSlider *);
  267.  
  268. float     gethsval(HSlider *);
  269.  
  270. /* Pull-down menus  and MenuBars */
  271.  
  272. typedef int (*PFI)();
  273.  
  274. typedef struct MenuItem {
  275.     struct MenuItem     *next;          /* next entry in pulldown       */
  276.     PFI                 func;           /* executed by entry chosen %f  */
  277.     PFI                 itemfunc;
  278.     PFI                 draw;           /* custom drawing on entry %d   */
  279.     struct PullDown     *pd;            /* pulldown for rollover menu %m*/
  280.     char                *text;          /* text in entry                */
  281.     short               width;          /* required width for this entry*/
  282.     short               yoffset;        /* offset from pd->yorg         */
  283.     short               select;         /* selected or not              */
  284.     short               no;             /* number of entry              */
  285.     long                retno;          /* return value %x              */
  286.     short               underline;      /* separator under this entry %l*/
  287.     short               active;         /* check mark or not            */
  288.     short               enable;         /* able to be picked            */
  289.     char                *altkey;        /* alt key equivalent %a        */
  290. } MenuItem;
  291.  
  292. typedef struct PullDown {
  293.     struct MenuItem     *entries;       /* menu entries on pulldown     */
  294.     struct PullDown     *subpd;
  295.     PFI                 func;           /* exec. by any choice on pd %F */
  296.     short               nentries;       /* number of menu entries on pd */
  297.     short               slide;          /* any entries have a rollover? */
  298.     short               active;         /* any entries have a check mark*/
  299.     short               width;          /* max. width of all entries    */
  300.     short               height;         /* height of pulldown           */
  301.     char                *title;         /* title on menubar & pulldown  */
  302.     short               twidth;         /* pixel width of title         */
  303.     short               xorg;           /* screen coordinates of right  */
  304.     short               yorg;           /* screen coordinates of top    */
  305.     short               txorg;          /* screen coords. of title xorg */
  306.     short               orglocked;
  307.     short               enable;         /* able to be picked            */
  308.     struct menubar    *mb;        /* the menu bar where this pd is*/
  309. } PullDown;
  310.  
  311. typedef struct menubar {
  312.     long        xorg, yorg;             /* origin of window             */
  313.     long        xmin, ymin, xmax, ymax; /* screen coordinates           */
  314.     long        count;                  /* number of pulldown menus     */
  315.     short       locate;                 /* locate highlight (# of pd)   */
  316.     short     invisible;        /* the menu bar is not visible     */
  317.     short    enable;            /* the menu bar is enables    */
  318.     PullDown    **pds;                  /* pulldown menus               */
  319. } MenuBar;
  320.  
  321. PullDown        *newpd(MenuBar *, char *);
  322. PullDown        *createmenu(MenuBar *, char **, long, long);
  323.  
  324. void    freepd(register PullDown *);
  325. void    initpd();
  326. #ifdef __cplusplus
  327. void    loadpd(...);
  328. #else
  329. void    loadpd();
  330. #endif
  331. void    deactivatepdentry(PullDown *, char *);
  332. void    activatepdentry(PullDown *, char *);
  333. void    disablepdentry(PullDown *, char *);
  334. void    enablepdentry(PullDown *, char *);
  335. void    disablepd(PullDown *);
  336. void    enablepd(PullDown *);
  337. void    changepdtitle(PullDown *, char *);
  338. void    addtopd(PullDown *, MenuItem *);
  339.  
  340. short    getenablepd(PullDown *);
  341. short    changepd(PullDown *, char *, char *);
  342. short    valuepdentry(PullDown *, char *);
  343.  
  344. MenuItem        *getpdentry(PullDown *, char *);
  345. MenuBar        *newmenubar();
  346.  
  347. void    loadmenubar(MenuBar *, long, PullDown **);
  348. void    addtomenubar(MenuBar *, PullDown *);
  349. void    removefrommenubar(MenuBar *, PullDown *);
  350. void    movemenubar(MenuBar *);
  351. void    highlightmb(MenuBar *, long);
  352. void    unhighlightmb(MenuBar *);
  353. void    makevisiblemb(MenuBar *);
  354. void    makeinvisiblemb(MenuBar *);
  355. void    enablemb(MenuBar *);
  356. void    disablemb(MenuBar *);
  357. void    drawmenubar(MenuBar *);
  358. void    drawmenubarnow(MenuBar *);
  359.  
  360. long    dopulldown(MenuBar *);
  361. long    inmenubar(MenuBar *, long, long);
  362.  
  363. short    gethighlightmb(MenuBar *);
  364. short    getvisiblemb(MenuBar *);
  365. short    getenablemb(MenuBar *);
  366. short    locatemenubar(MenuBar *, long, long);
  367.  
  368. /* Text Boxes */
  369.  
  370. #define LABELSTRLEN     50
  371. #define TBSTRLEN        200
  372. #define TEXTBOXHEIGHT   28
  373.  
  374. /* Define for the settbtype() and gettypein() flag */
  375. #define TYPEIN_STRING   0
  376. #define TYPEIN_INT      1
  377. #define TYPEIN_FILE     2
  378. #define TYPEIN_FLOAT    3
  379. #define TYPEIN_HEX      4
  380. #define TYPEIN_WHOLE    5
  381.  
  382. typedef struct {
  383.     long    xmin, xmax, ymin;
  384.     long     number;            /* the tb number--used internally */
  385.     char        str[TBSTRLEN+1];        /* contents of text box         */
  386.     char        label[LABELSTRLEN+1];   /* label to left of text box    */
  387.     long        tp1, tp2;               /* textpointers                 */
  388.     long        charWidth;              /* width of box in # of characters */
  389.     short       active;
  390.     short       enable;
  391.     short     invisible;        /* the text box is not visible     */
  392.     short       type;                   /* for type-checking            */
  393.     long        index;          /* index into leftmost visible character */
  394. } TextBox;
  395.  
  396. TextBox    *newtb(long, long, long);
  397. TextBox *getactivetb();
  398.  
  399. void    inittb();
  400. void    freetb(TextBox *);
  401. void    labeltb(TextBox *, char *);
  402. void    settbtype(TextBox *, long);
  403. void    movetb(TextBox *, long, long, long);
  404. void    activatetb(TextBox *);
  405. void    deactivatetb(TextBox *);
  406. void    enabletb(TextBox *);
  407. void    disabletb(TextBox *);
  408. void    makevisibletb(TextBox *);
  409. void    makeinvisibletb(TextBox *);
  410. void    cleartb(TextBox *);
  411. void    adjusttb(TextBox *, long);
  412. void    loadtb(TextBox *, char *);
  413. void    backspacetb(TextBox *);
  414. void    inserttbchar(TextBox *, char);
  415. void    drawtb(TextBox *);
  416. void    drawtbnow(TextBox *);
  417.  
  418. char    *gettbstr(TextBox *);
  419.  
  420. short    intb(TextBox *, long, long);
  421. short    handletb(TextBox *, long, long, long, long);
  422. short    findtp(TextBox *, long);
  423. short    getenabletb(TextBox *);
  424. short   getvisibletb(TextBox *);
  425.  
  426. int     tilde(char *, char *);
  427.  
  428. /* Vertical Sliders */
  429.  
  430. typedef    Slider VSlider;
  431.  
  432. VSlider *newvs(long, long, long, long, long);
  433.  
  434. void     movevs(VSlider *, long, long, long);
  435. void    setarrowdelta(VSlider *, long);
  436. void    freevs(VSlider *);
  437. void    disablevs(VSlider *);
  438. void    enablevs(VSlider *);
  439. void    highlightvs(VSlider *, short);
  440. void    unhighlightvs(VSlider *);
  441. void    selectvs(VSlider *, short);
  442. void    unselectvs(VSlider *);
  443. void    makevisiblevs(VSlider *);
  444. void    makeinvisiblevs(VSlider *);
  445. void    pressvsarrow(VSlider *, short);
  446. void    setvshalf(VSlider *, long);
  447. void    setvscenter(VSlider *, long);
  448. void    setvsval(VSlider *, float);
  449. void    movevsval(VSlider *, float);
  450. void    resetvs(VSlider *);
  451. void    drawvs(VSlider *);
  452. void    drawvsnow(VSlider *);
  453. void    drawvsarrows(VSlider *);
  454.  
  455. short   locatevs(VSlider *, long, long);
  456. short   getenablevs(VSlider *);
  457. short   gethighlightvs(VSlider *);
  458. short   getselectvs(VSlider *);
  459. short   getenablevs(VSlider *);
  460. short    getvisiblevs(VSlider *);
  461. short   invs(VSlider *, long, long);
  462. short   handlevs(VSlider *, long, long);
  463.  
  464.  
  465. long    getvstrough(VSlider *);
  466.  
  467. float   getvsval(VSlider *);
  468.  
  469. /* Text Lists */
  470.  
  471. #define TEXTLISTFONT            5601
  472.  
  473. typedef struct {
  474.     long        xmin, xmax, ymin, ymax;
  475.     long        listheight;         /* in lines of text */
  476.     char        **strs;            /* text    */
  477.     long        top;            /* index into strs */
  478.     long        count;          /* total number of strings */
  479.     long        selecteditem;        /* index into selecteditem or -1 */
  480.     long        locateditem;        /* index into locateditem or -1 */
  481.     short     invisible;        /* the text list is not visible    */
  482.     VSlider     *vs;            /* the associated slider if one */
  483. } TextList;
  484.  
  485. short   selectedvs(VSlider *, TextList *, long, long, long);
  486.  
  487. TextList *newtl(long, long, long, long);
  488.  
  489. void     movetl(TextList *, long, long, long, long);
  490. void    inittl();
  491. void    resettl(TextList *);
  492. void    unselecttl(TextList *);
  493. void    selecttlitem(TextList *, long);
  494. void    highlighttl(TextList *, long);
  495. void    unhighlighttl(TextList *);
  496. void    makevisibletl(TextList *);
  497. void    makeinvisibletl(TextList *);
  498. void    settltop(TextList *, long);
  499. void    settlstrings(TextList *, char **);
  500. void    adjusttop(TextList *, float);
  501. void    drawtl(TextList *);
  502. void    drawtlnow(TextList *);
  503. void    settlstrslinkhandle(char **, TextList *);
  504. void    adjustslider(TextList *, VSlider *);
  505.  
  506. short    getselectedtlitem(TextList *);
  507. short    gethighlighttl(TextList *);
  508. short    getvisibletl(TextList *);
  509. short    getitemvisibletl(TextList *, long);
  510. short    locatetl(TextList *, long, long);
  511. short    intl(TextList *, long, long);
  512. short    handletl(TextList *, long, long);
  513. short    selectedtl(TextList *, long, long, long);
  514.  
  515. long    gettextlistheight(long);
  516. long    gettlheightcount(long, long);
  517.  
  518. char    *selectedstring(TextList *);
  519.  
  520. /* Valuators */
  521.  
  522. #define VALUATORWIDTH   22
  523.  
  524. typedef    Slider Valuator;
  525.  
  526. Valuator *newval(long, long, long, long, long, short);
  527.  
  528. void     moveval(Valuator *, long, long, long);
  529. void    setvalarrowdelta(Valuator *, long);
  530. void    freeval(Valuator *);
  531. void    disableval(Valuator *);
  532. void    enableval(Valuator *);
  533. void    highlightval(Valuator *, short);
  534. void    unhighlightval(Valuator *);
  535. void    selectval(Valuator *, short);
  536. void    unselectval(Valuator *);
  537. void    makevisibleval(Valuator *);
  538. void    makeinvisibleval(Valuator *);
  539. void    pressvalarrow(Valuator *, short);
  540. void    setvalhalf(Valuator *, long);
  541. void    setvalcenter(Valuator *, long);
  542. void    setvalval(Valuator *, float);
  543. void    movevalval(Valuator *, float);
  544. void    resetval(Valuator *);
  545. void    drawval(Valuator *);
  546. void    drawvalnow(Valuator *);
  547. void    drawvalarrows(Valuator *);
  548.  
  549. short    getarrowsval(Valuator *);
  550. short    getenableval(Valuator *);
  551. short    gethighlightval(Valuator *);
  552. short    getselectval(Valuator *);
  553. short    getvisibleval(Valuator *);
  554. short    locateval(Valuator *, long, long);
  555. short    inval(Valuator *, long, long);
  556. short    handleval(Valuator *, long, long);
  557. short    selectedval(Valuator *, long, long, long);
  558.  
  559. float    getvalval(Valuator *);
  560.  
  561. /* Misc.    */
  562. void    backgrounddraw(long, long, long, long);
  563. void    backgroundclear();
  564. void    windowborderdraw();
  565. void    initui();
  566. void    uiokdraw();
  567. void    uinodraw();
  568. void    defglfont(char *, long, long);
  569. void    unlocateall();
  570.  
  571. short    uiswapbuffers();
  572.  
  573. void uiWhite();
  574. void uiVyLtGray();
  575. void uiBlack();
  576.  
  577. #ifdef NOTDEF
  578. typedef struct {
  579.     short    type;
  580.     short       active;
  581.     short       enable;
  582.     short     invisible;
  583.     short    select;            /* selected or not */
  584.     long        xmin, ymin, xmax, ymax;
  585.     widget_t    *(*createme)();
  586.     void    (*deleteme)();
  587.     void    (*drawme)();
  588.     long    (*editme)();
  589.     void    (*inme)();
  590.     void    (*loadme)();
  591.     short    (*locateme)();
  592.     void    (*positionme)();
  593. } Widget;
  594. #endif
  595. #ifdef __cplusplus
  596. }
  597. #endif
  598.  
  599. #endif    /* !__SHOWCASEUI_H__ */
  600.